#pragma once

#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

namespace Core
{
	
	/*typedef glm::highp_dmat2x2 Matrix2D;
	typedef glm::highp_dmat2x3  Matrix23;
	typedef glm::highp_dmat2x4  Matrix24;
	typedef glm::highp_dmat3x2 Matrix32;
	typedef glm::highp_dmat3x4 Matrix34;
	typedef glm::highp_dmat3 Matrix3D;
	typedef glm::highp_dmat4x2 Matrix42;
	typedef glm::highp_dmat4x3 Matrix43;
	typedef glm::highp_dmat4 Matrix4D;*/

	typedef glm::highp_f64mat2x2	Matrix2D;
	typedef glm::highp_f64mat2x3	Matrix23D;
	typedef glm::highp_f64mat2x4	Matrix24D;
	typedef glm::highp_f64mat3x2	Matrix32D;
	typedef glm::highp_f64mat3x4	Matrix34D;
	typedef glm::highp_f64mat3x3	Matrix3D;
	typedef glm::highp_f64mat4x2	Matrix42D;
	typedef glm::highp_f64mat4x3	Matrix43D;
	typedef glm::highp_f64mat4x4	Matrix4D;

	typedef glm::highp_f32mat2x2	Matrix2F;
	typedef glm::highp_f32mat2x3	Matrix23F;
	typedef glm::highp_f32mat2x4	Matrix24F;
	typedef glm::highp_f32mat3x2	Matrix32F;
	typedef glm::highp_f32mat3x4	Matrix34F;
	typedef glm::highp_f32mat3x3	Matrix3F;
	typedef glm::highp_f32mat4x2	Matrix42F;
	typedef glm::highp_f32mat4x3	Matrix43F;
	typedef glm::highp_f32mat4x4	Matrix4F;

}